home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Technotools
/
Technotools (Chestnut CD-ROM)(1993).ISO
/
lang_asm
/
disasm
/
lbas.doc
< prev
next >
Wrap
Text File
|
1988-06-03
|
4KB
|
94 lines
LBAS Label Basic Translator Program
====================================
Author: Jack Botner
Date Written: November, 1982
Last Updated: April, 1983
This program was written at home on my own time and I am making it available
for IBM Internal Use.
Changes incorporated in version 12/82:
- TAB character is now replaced with a blank so tabs may be
present in the input.
- "Between double quotes" flag turned off when a new line
is begun, to limit scope of impact if closing " is missing.
- Test inserted to make sure user has enough memory available.
- Warning issued when output file will be overwritten.
- Dependance on copy code control block storage definitions removed.
Changes incorporated in version 04/83:
- Fixed bug which caused program to fail "insufficient memory"
when system has 512K or more storage.
- Changed diskette I/O to block read and write, for up to 5 times
improved run times.
- Now allows "comment" lines where the first line is the "sun"
symbol (also known as squashed bug symbol) (character 15 decimal).
- Now ignores blank lines.
PCLIB contents:
LBAS EXEEXP is an EXPORTED version of LBAS.EXE.
LBAS EXETBH is a B3277 binary version of LBAS.EXE.
LBAS ASM is the PC-assembler source code (no tabs).
LBAS DOC is this document, in plain text.
Description:
This program translates "label basic" programs into proper
basic format acceptible to the PC Basic interpreter. It is
written in assembly language for speedy execution.
"Label basic" programs can be thought of as Basic programs
with two differences:
1. There are no sequence numbers at the beginning of each
statement.
2. Statement locations required by GOTO, GOSUB, ON ERROR, etc.
are referenced by labels instead of statement numbers.
"Label basic" programs have the following advantages:
1. The program can be entered and maintained using a PC
full-screen editor.
2. The programmer need not concern himself with statement numbers
and renumbering the program. Statements and subroutines are
referenced symbolically.
The disadvantage of "label basic", of course, is that you have to maintain the
"label basic" source and run the program through the translator before it is
useable by Basic. However, this translator runs quite fast, more than 10 times
faster than the version which runs under the Basic interpreter. (Credit must be
given to Dave Chess, who inspired the idea of label basic.)
A label is defined as any non-blank string of characters beginning with an '!'
symbol and containing at least one additional character. The maximum label
length supported by this program is 16 characters (including the !). The program
has room for 256 labelled state- ments. These limitations are somewhat arbitrary
and could be changed if necessary. Labels found inside literals (i.e. between
double quotes) will be ignored. Each statement can be "labelled" only once.
The maximum file size which can be processed by this program is 64K bytes.
This is because the entire file is read into one data segment of main storage
for processing, thus avoiding having to read the file from disk twice.
Therefore, your PC must have at least 96K of memory to run LBAS. If insufficient
memory is available, the program will terminate with an error message.
Files used as input to this program should have a file extension of "LBA".
(This can be overridden, but the program will be easier to run with the default
file extension.) The output file will be created with the same filename, and
given a file extension of "BAS". This will be in a format compatible with Basic
ASCII files. The output file will always be created on the same disk as the
input file.
To run the program, enter (from DOS):
LBAS <d:>filename<.filext>
where d: overrides the default disk drive if necessary, and .filext overrides
the default file extension (.LBA). If you omit the filename on the command, you
will be prompted for it.
Each TAB character is replaced with a blank, so tabs may be present in the
input file. No attempt is made to maintain original spacing of the lines,
however.
To report any problems or suggestions, please contact the author at VM
TOROLAB(BOTNER).